#include    "rectifier.h"

//------------------------------------------------------------------------------
//
//------------------------------------------------------------------------------
Rectifier::Rectifier(QObject *parent) : Device(parent)
  , coeff(0.9)
  , U_in(0.0)
  , I_out(0.0)
  , U_out(0.0)
  , r(0.086)
{

}

//------------------------------------------------------------------------------
//
//------------------------------------------------------------------------------
Rectifier::~Rectifier()
{

}

//------------------------------------------------------------------------------
//
//------------------------------------------------------------------------------
void Rectifier::setU_in(double value)
{
    U_in = value;
}

//------------------------------------------------------------------------------
//
//------------------------------------------------------------------------------
double Rectifier::getU_out() const
{
    return U_out;
}

//------------------------------------------------------------------------------
//
//------------------------------------------------------------------------------
void Rectifier::setI_out(double value)
{
    I_out = value;
}

//------------------------------------------------------------------------------
//
//------------------------------------------------------------------------------
void Rectifier::preStep(state_vector_t &Y, double t)
{
    U_out = coeff * U_in - r * I_out;
}

//------------------------------------------------------------------------------
//
//------------------------------------------------------------------------------
void Rectifier::ode_system(const state_vector_t &Y,
                           state_vector_t &dYdt,
                           double t)
{

}

void Rectifier::load_config(CfgReader &cfg)
{
    cfg.getDouble("Device", "Coeff", coeff);
}
